package modelo;

import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;

public class Competencia {

	private long codigoCompetencia;
	private Date fechaHoraCompetencia;
	private Juez juez;
	private Modalidad modalidad = new Modalidad();
	private ArrayList<NadadorCompetencia> vectorNadadorCompetencia = new ArrayList<NadadorCompetencia>();
	private Vector<Integer> carriles = new Vector<Integer>();

	public Competencia() {
		super();		 
	}

	public Juez getJuez() {
		return juez;
	}

	public void setJuez(Juez juez) {
		this.juez = juez;
	}

	public Modalidad getModalidad() {
		return modalidad;
	}

	public void setModalidad(Modalidad modalidad) {
		this.modalidad = modalidad;
	}

	public void setCodigoCompetencia(long codigoCompetencia) {
		this.codigoCompetencia = codigoCompetencia;
	}

	public void setFechaHoraCompetencia(Date fechaCompetencia) {
		this.fechaHoraCompetencia = fechaCompetencia;
	}

	public Date getFechaCompetencia() {
		return fechaHoraCompetencia;
	}

	public long getCodigoCompetencia() {
		return codigoCompetencia;
	}

	public ArrayList<NadadorCompetencia> getVectorNadadorCompetencia() {
		return vectorNadadorCompetencia;
	}

	public void setVectorNadadorCompetencia(
			ArrayList<NadadorCompetencia> vectorNadadorCompetencia) {
		this.vectorNadadorCompetencia = vectorNadadorCompetencia;
	}

	public void agregarNadador(Nadador nadador) {
		vectorNadadorCompetencia.add(new NadadorCompetencia(nadador));
	}

	public Vector<Integer> getCarriles() {
		return carriles;
	}

	public void setCarriles(Vector<Integer> carriles) {
		this.carriles = carriles;
	}
	
	public ArrayList<Nadador> semifinalistas() {
		ArrayList<Nadador> nadadores = new ArrayList<Nadador>();
		ArrayList<Double> mejores = new ArrayList<Double>();
		for (int k=0; k<8; k++)
			mejores.add(new Double(vectorNadadorCompetencia.get(k).getTiempo()));
		while(mejores.size()!=4){
			double menor = 80;
			for (int i=0; i<mejores.size(); i++){
				if (menor > mejores.get(i))
					menor = mejores.get(i);
			}
			int indice = 0;
			for (int i=0; i<mejores.size(); i++){
				if (menor == mejores.get(i))
					indice = i;
				mejores.remove(indice);
			}
		}
		for (int k=0; k<8; k++)
			for (int i=0; i<4; i++)
				if (vectorNadadorCompetencia.get(k).getTiempo() == mejores.get(i))
					nadadores.add(vectorNadadorCompetencia.get(k).getNadador());
		return nadadores;
	}

}
